接下來做的 userPosts method 就比較特別一些,詳情見以下步驟:
首先確認是否存在該名使用者
use App\User;
class PostsController extends Controller
{
public function userPosts($user_id)
{
$user = User::find($user_id);
if(!is_null($user)){
//
}
return response(['message' => 'User not found']);
}
}
將該名使用者的所有貼文秀出來
完整程式碼
*PostsController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Post;
use App\User;
class PostsController extends Controller
{
public function userPosts($user_id)
{
$user = User::find($user_id);
if(!is_null($user)){
return response(['data' => $user->posts]);
}
return response(['message' => 'User not found']);
}
}
其中若只是要將該使用者的所有貼文印出來 ( 一對多 ),方法如下:
$user->posts;
其實也可以反過來找該貼文所屬的使用者 ( 雖然跟這支 API 無關,但還是說明一下 )
$post = Post::find(1);
// 取得該使用者的名字
$name = $post->user->name;
除此之外,找該使用者其中某篇貼文,需注意若還要進一步從所有資料篩選的話,此時的 post 則變成一個 query method,然後做更深入的查找:
$user->posts()->where('id', 1)->get();
找不到該使用者
存在該使用者,並且得到所有貼文
下一篇繼續把 update 和 destroy 的部份完成。
參考資料: